package org.hfy.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.time.LocalDate;

/**
 * 入库管理实体类
 * 
 * @author hfy
 * @version 1.0
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("inbound")
public class Inbound extends BaseEntity {

    /**
     * 入库单号
     */
    private String inboundNo;

    /**
     * 报价单ID
     */
    private Long quotationId;

    /**
     * 报价明细ID
     */
    private Long quotationItemId;

    /**
     * 外发单ID
     */
    private Long outsourcingId;

    /**
     * 客户代码
     */
    private String customerCode;

    /**
     * 客户名称
     */
    private String customerName;

    /**
     * 客户编号
     */
    private String customerNo;

    /**
     * 产品名称
     */
    private String productName;

    /**
     * 物料编码
     */
    private String materialCode;

    /**
     * 采购订单号
     */
    private String purchaseOrderNo;

    /**
     * 厂内编号 (格式: ch00001)
     */
    private String factoryNo;

    /**
     * 外发供应商代码
     */
    private String supplierCode;

    /**
     * 外发供应商名称
     */
    private String supplierName;

    // PCB技术参数
    /**
     * 层数
     */
    private String layers;

    /**
     * 板厚(mm)
     */
    private String thickness;

    /**
     * 表面处理
     */
    private String surfaceTreatment;

    /**
     * 阻焊
     */
    private String solderMask;

    /**
     * 字符
     */
    @TableField("`character`")
    private String character;

    /**
     * 板材
     */
    private String boardMaterial;

    /**
     * 交货尺寸(mm)
     */
    private String deliverySize;

    /**
     * 拼版
     */
    private String panelization;

    /**
     * 内铜
     */
    private String innerCopper;

    /**
     * 外铜
     */
    private String outerCopper;

    /**
     * 过孔工艺
     */
    private String viaProcess;

    /**
     * 测试
     */
    private String testing;

    /**
     * 测试架费
     */
    private BigDecimal testingFee;

    /**
     * 是否加急
     */
    private Boolean isUrgent;

    // 数量和金额
    /**
     * 订单数量
     */
    private Integer orderQuantity;

    /**
     * 入库数量
     */
    private Integer inboundQuantity;

    /**
     * 备品数量
     */
    private Integer spareQuantity;

    /**
     * 单价
     */
    private BigDecimal unitPrice;

    /**
     * 样板费
     */
    private BigDecimal sampleFee;

    /**
     * 合计金额
     */
    private BigDecimal totalAmount;

    /**
     * 是否含税
     */
    private Boolean isTaxIncluded;

    // 面积和价格
    /**
     * 订单面积(mm²)
     */
    private BigDecimal orderAreaMm;

    /**
     * 平米价(元)
     */
    private BigDecimal pricePerSqm;

    // 日期信息
    /**
     * 订单日期
     */
    private LocalDate orderDate;

    /**
     * 出货日期
     */
    private LocalDate deliveryDate;

    /**
     * 入库日期
     */
    private LocalDate inboundDate;

    // 状态和备注
    /**
     * 状态
     */
    private String status;

    /**
     * 备注
     */
    private String remark;

    /**
     * 项目
     */
    private String project;

    /**
     * 毛坯
     */
    private String roughMaterial;

    /**
     * 业务员
     */
    private String salesperson;

    /**
     * 创建人
     */
    private String createdBy;
} 